// let a = 'ok' 
// let b = 'ok'
// let c = Symbol('yes')
// console.log(a == c);

// console.log(typeof c);

// let s = new Symbol('yes')
// console.log(s);

// console.log(c instanceof Symbol); // false

// const obj = {
//     aaa() {
//         return 'abc'
//     }
// }
// 如果Symbol接收的参数是一个对象，就会调用该对象的toString方法，将其转为字符串，然后再生成一个Symbo值
// const sym = Symbol(obj)
// "{aaa() {return 'abc}}"
// console.log(sym);


// let s1 = Symbol()
// let s2 = Symbol()

// // console.log(s1 === s2);

// let sym = Symbol('My Symbol')

// console.log(sym);
// console.log(String(sym)); // 'Symbol(My Symbol)'
// console.log(sym.toString());
// console.log('your symbol is'); //Symbol的值不能与其他类型的值进行运算

// let mySymbol = Symbol()

// let obj = {
//     name:'冯总',
//     name:'宝老板'
// }
// obj[mySymbol] = 'Hello' // obj.mySymbol = 'Hello' // 变量要用[]
// obj[mySymbol] = 'world'
// console.log(obj);



// let a = {
//     [mySymbol]:'Hello'
// }

// let a ={}
// Object.defineProperty(a,mySymbol,{value:'Hello'})


// let obj = {
//     name:'fengzong'
// }
// let a = Symbol('a')
// let b = Symbol('b')

// obj[a] = 'Hello'
// obj[b] = 'world'
// console.log(obj.hasOwnProperty('name')); // true
// console.log(obj.hasOwnProperty(a)); // true

// console.log(object.getOwnPropertySymbols(obj));


let s1 = Symbol.for('foo')
let s2 = Symbol('foo')

// console.log(s1 === s2);

console.log(Symbol.keyFor(s2));



